home *** CD-ROM | disk | FTP | other *** search
/ Hacker's Secrets 4 / Hacker's Secrets 4.iso / faq / comp427.txt < prev    next >
Text File  |  1997-01-06  |  30KB  |  586 lines

  1. Subject: Avoiding bogus encryption products: Snake Oil FAQ
  2. Date: 10 Dec 1996 16:41:09 -0500
  3. Summary: Identifying and avoiding weak cryptography products.
  4. X-Face: "&>g(&eGr?u^F:nFihL%BsyS1[tCqG7}I2rGk4{aKJ5I_5A\*6RYn4"N.`1pPF9LO!Fa<(gj:12)?=uP2l01e10Gij"7j&-)torL^iBrNf\s7PDLm=rf[PjxtSbZ{J(@@j"q2/iV9^Mx<e%nT[:7s7.-#u*}GAH,bEfbfh-NDqSG`+s
  5. X-Newsreader: Gnus v5.2.25/XEmacs 19.14
  6.  
  7. URL: http://www.research.megasoft.com/people/cmcurtin/snake-oil-faq.html
  8. Version: 1.2
  9. Posting-Frequency: monthly
  10.  
  11.                            Snake-Oil Warning Signs
  12.                         Encryption Software to Avoid
  13.                         Copyright ⌐ 1996 Matt Curtin
  14.       $Id: snake-oil-faq.html,v 1.2 1996/11/10 01:18:58 cmcurtin Exp $
  15. Distribution
  16.  
  17. Distribution of this document is unlimited. We're specifically trying to
  18. reach people who are not experts in cryptography or security but find
  19. themselves making decisions about what sorts of crypto (if any) to use, both
  20. for their organizations and for themselves.
  21.  
  22. The Snake Oil FAQ is posted monthly to cypherpunks, sci.crypt, alt.security,
  23. comp.security, comp.answers, and comp.infosystems.
  24.  
  25. Disclaimer
  26.  
  27. All contributors' employers will no doubt disown any statements herein.
  28. We're not speaking for anyone but ourselves.
  29.  
  30. This is a compilation of common habits of snake-oil vendors. It cannot be
  31. the sole method of rating a security product, since there can be exceptions
  32. to most of these rules. From time to time, a reputable vendor will produce
  33. something that is actually quite good, but will promote it with braindead
  34. marketing techniques. But if you're looking at something that exhibits
  35. several warning signs, you're probably dealing with snake oil.
  36.  
  37. Every effort has been made to produce an accurate and useful document, but
  38. the information herein is completely without warranty. This is a
  39. work-in-progress; feedback is greatly appreciated. If you find any errors or
  40. otherwise wish to contribute, please contact the document keeper, Matt
  41. Curtin <cmcurtin@research.megasoft.com>
  42.  
  43. Introduction
  44.  
  45. Good cryptography is an excellent and necessary tool for almost anyone. Many
  46. good cryptographic products are available commercially, as shareware, or
  47. free. However, there are also extremely bad cryptographic products which not
  48. only fail to provide security, but also contribute to the many
  49. misconceptions and misunderstandings surrounding cryptography and security.
  50.  
  51. Why "snake oil"? The term is used in many fields to denote something sold
  52. without consideration of its quality or its ability to fulfill its vendor's
  53. claims. This term originally applied to elixirs sold in traveling medicine
  54. shows. The salesmen would claim their elixir would cure just about any
  55. ailment that a potential customer could have. Listening to the claims made
  56. by some crypto vendors, "snake oil" is a surprisingly apt name.
  57.  
  58. Superficially, it is difficult to distinguish snake oil from the Real Thing:
  59. all encryption utilities produce garbled output. The purpose of this
  60. document is to present some simple "red flags" that can help you detect
  61. snake oil.
  62.  
  63. For a variety of reasons, this document does not mention specific products
  64. or algorithms as being "good" or "snake oil".
  65.  
  66. Basic Concepts
  67.  
  68. In an effort to make this FAQ more complete, some basic information is
  69. covered here. The Cryptography FAQ [3] is a more general tutorial of
  70. cryptography and should also be consulted.
  71.  
  72. When evaluating any product, be sure to understand your needs. For data
  73. security products, what are you trying to protect? Do you want a data
  74. archiver, an e-mail plug-in, or something that encrypts on-line
  75. communications? Do you need to encrypt an entire disk or just a few files?
  76.  
  77. And how secure is secure enough? Does the data need to be unreadable by
  78. "spies" for five minutes, one year, or 100 years? Is the spy someone's kid
  79. sister, a corporation, or a government?
  80.  
  81. Symmetric vs. Asymmetric Cryptography
  82.  
  83. There are two basic types of cryptosystems: symmetric (also known as
  84. "conventional" or "secret key") and asymmetric ("public key").
  85.  
  86. Symmetric ciphers require both the sender and the recipient to have the same
  87. key. This key is used by the sender to encrypt the data, and again by the
  88. recipient to decrypt the data. The problem here is getting the sender and
  89. recipient to share the key.
  90.  
  91. Asymmetric ciphers are much more flexible from a key management perspective.
  92. Each user has a pair of keys: a public key and a private key. Messages
  93. encrypted with one key can only be decrypted by the other key. The public
  94. key can be published widely while the private key is kept secret.
  95.  
  96. So if Alice wishes to send Bob some secrets, she simply finds and verifies
  97. Bob's public key, encrypts her message with it, and mails it off to Bob.
  98. When Bob gets the message, he uses his private key to decrypt it.
  99.  
  100. Verification of public keys is an important step. Failure to verify that the
  101. public key really does belong to Bob leaves open the possibility that Alice
  102. is using a key whose associated private key is in the hands of an enemy.
  103.  
  104. Asymmetric ciphers are much slower than their symmetric counterparts. Also,
  105. key sizes generally must be much larger. See the Cryptography FAQ [3] for a
  106. more detailed discussion of these topics.
  107.  
  108. Secrecy vs Integrity: What are you trying to protect?
  109.  
  110. For many users of computer-based crypto, preserving the contents of a
  111. message is as important as protecting its secrecy. Damage caused by
  112. tampering can often be worse than damage caused by disclosure. For example,
  113. it may be disquieting to discover that a hacker has read the contents of
  114. your funds-transfer authorization, but it's a disaster for him to change the
  115. transfer destination to his own account.
  116.  
  117. Encryption by itself does not protect a message from tampering. In fact,
  118. there are several techniques for changing the contents of an encrypted
  119. message without ever figuring out the encryption key. If the integrity of
  120. your messages is important, don't rely on just secrecy to protect them.
  121. Check how the vendor protects messages from undetected modification.
  122.  
  123. Key Sizes
  124.  
  125. Even if a cipher is secure against analytical attacks, it will be vulnerable
  126. to brute-force attacks if the key is too small. In a brute-force attack, the
  127. attacker simply tries every possible key until the right one is found. How
  128. long this takes depends on the size of the key and the amount of processing
  129. power available. So when trying to secure data, you need to consider how
  130. long it must remain secure and how much computing power an attacker can use.
  131.  
  132. [1] and [2] offer some guidelines for choosing an appropriate key length.
  133. For instance, the following chart for symmetric-cipher keys appears in [1].
  134.  
  135.                Security Requirements for Different Information
  136.  
  137.               Type of Traffic                Lifetime   Minimum [Symmetric]
  138.                                                              Key Length
  139.  Tactical military information             minutes/hours     56-64 bits
  140.  Product announcements, mergers             days/weeks        64 bits
  141.  Long-term business plans                      years          64 bits
  142.  Trade secrets                                decades         112 bits
  143.  H-bomb secrets                              >40 years        128 bits
  144.  Identities of spies                         >50 years        128 bits
  145.  Personal affairs                            >50 years        128 bits
  146.  Diplomatic embarrassments                   >65 years   at least 128 bits
  147.  U.S. Census data                            100 years   at least 128 bits
  148.  
  149. Note that these figures are based on current predictions of future increases
  150. in computing power. A major technological breakthrough 30 years from now
  151. might render everything on the chart kiddieplay. This chart is just to give
  152. you a rough idea of whether the key length used in a crypto product is
  153. sensible.
  154.  
  155. As mentioned earlier, asymmetric ciphers typically require significantly
  156. longer keys to provide the same level of security as symmetric ciphers.
  157. Comparing key lengths between algorithms is awkward because different
  158. algorithms have different characteristics. Knowing the key size is useless
  159. if you don't know what type of algorithm is being used.
  160.  
  161. But to give you some idea of what's reasonable, here is a table taken from
  162. [1] that compares symmetric keys against one type of asymmetric key: those
  163. based on the "factoring problem" or the "discrete log problem". (Algorithms
  164. based on the "elliptical curve discrete log problem" are more resistant to
  165. brute-force attacks and can use much smaller keys. In fact, they don't have
  166. to be much larger than symmetric keys, as far as we know right now.)
  167.  
  168.                     Symmetric and Public-Key Lengths With
  169.                   Similar Resistance to Brute-Force Attacks
  170.  
  171.                  Symmetric Key Length Public-key Key Length
  172.                         56 bits             384 bits
  173.                         64 bits             512 bits
  174.                         80 bits             768 bits
  175.                        112 bits             1792 bits
  176.                        128 bits             2304 bits
  177.  
  178. Keys vs. Passphrases
  179.  
  180. A "key" is not the same thing as a "passphrase" or "password". In order to
  181. resist attack, all possible keys must be equally probable. If some keys are
  182. more likely to be used than others, then an attacker can use this
  183. information to reduce the work needed to break the cipher.
  184.  
  185. Essentially, the key must be random. However, a passphrase generally needs
  186. to be easy to remember, so it has significantly less randomness than its
  187. length suggests. For example, a 20-letter English phrase, rather than having
  188. 20*8=150 bits of randomness, only has about 20*2=40 bits of randomness.
  189.  
  190. So, most cryptographic software will convert a passphrase into a key through
  191. a process called "hashing" or "key initialization". Avoid cryptosystems that
  192. skip this phase by using a password directly as a key.
  193.  
  194. Implementation Environment
  195.  
  196. Other factors that can influence the relative security of a product are
  197. related to its environment. For example, in software-based encryption
  198. packages, is there any plaintext that's written to disk (perhaps in
  199. temporary files)? What about operating systems that have the ability to swap
  200. processes out of memory on to disk? When something to be encrypted has its
  201. plaintext counterpart deleted, is the extent of its deletion a standard
  202. removal of its name from the directory contents, or has it been written
  203. over? If it's been written over, how well has it been written over? Is that
  204. level of security an issue for you? Are you storing cryptographic keys on a
  205. multi-user machine? The likelihood of having your keys illicitly accessed is
  206. much higher, if so. It's important to consider such things when trying to
  207. decide how secure something you implement is (or isn't) going to be.
  208.  
  209. Snake-Oil Warning Signs
  210.  
  211.    * "Trust Us, We Know What We're Doing"
  212.  
  213.      Perhaps the biggest warning sign of all is the "trust us, we know what
  214.      we're doing" message that's either stated directly or implied by the
  215.      vendor. If the vendor is concerned about the security of their system
  216.      after describing exactly how it works, it is certainly worthless.
  217.      Regardless of whether or not they tell, smart people will be able to
  218.      figure it out. The bad guys after your secrets (especially if you are
  219.      an especially attractive target, such as a large company, bank, etc.)
  220.      are not stupid. They will figure out the flaws. If the vendor won't
  221.      tell you exactly and clearly what's going on inside, you can be sure
  222.      that they're hiding something, and that the only one to suffer as a
  223.      result will be you, the customer.
  224.  
  225.    * Technobabble
  226.  
  227.      If the vendor's description appears to be confusing nonsense, it may
  228.      very well be so, even to an expert in the field. One sign of
  229.      technobabble is a description which uses newly invented terms or
  230.      trademarked terms without actually explaining how the system works.
  231.      Technobabble is a good way to confuse a potential user and to mask the
  232.      vendor's own lack of expertise.
  233.  
  234.      And consider this: if the marketing material isn't clear, why expect
  235.      the instruction manual to be any better? Even the best product can be
  236.      useless if it isn't applied properly. If you can't understand what a
  237.      vendor is saying, you're probably better off finding something that
  238.      makes more sense.
  239.  
  240.    * Secret Algorithms
  241.  
  242.      Avoid software which uses secret algorithms. This is not considered a
  243.      safe means of protecting data. If the vendor isn't confident that its
  244.      encryption method can withstand scrutiny, then you should be wary of
  245.      trusting it.
  246.  
  247.      A common excuse for not disclosing an algorithm is that "hackers might
  248.      try to crack the program's security." While this may be a valid
  249.      concern, it should be noted that such "hackers" can reverse-engineer
  250.      the program to see how it works anyway. This is not a problem if the
  251.      algorithm is strong and the program is implemented properly.
  252.  
  253.      Using a well-known trusted algorithm, providing technical notes
  254.      explaining the implementation, and making the source code available are
  255.      signs that a vendor is confident about its product's security. You can
  256.      take the implementation apart and test it yourself. Even if the
  257.      algorithm is good, a poor implementation will render a cryptography
  258.      product completely useless. However, a lock that attackers can't break
  259.      even when they can see its internal mechanisms is a strong lock indeed.
  260.  
  261.      Note that a vendor who specializes in cryptography may have a
  262.      proprietary algorithm which they will reveal only under a
  263.      non-disclosure agreement. The crypto product may be perfectly adequate
  264.      if the vendor is reputable. But in general, you're best off avoiding
  265.      secret algorithms.
  266.  
  267.    * Revolutionary Breakthroughs
  268.  
  269.      Beware of any vendor who claims to have invented a "new type of
  270.      cryptography" or a "revolutionary breakthrough". True breakthroughs are
  271.      likely to show up in research literature, and professionals in the
  272.      field typically won't trust them until after years of analysis, when
  273.      they're not so new anymore.
  274.  
  275.      The strength of any encryption scheme is only proven by the test of
  276.      time. New crypto is like new pharmaceuticals, not new cars. And in some
  277.      ways it's worse: if a pharmaceutical company produces bogus drugs,
  278.      people will start getting sick, but if you're using bogus crypto, you
  279.      probably won't have any indication that your secrets aren't as secret
  280.      as you think.
  281.  
  282.      Avoid software which claims to use 'new paradigms' of computing such as
  283.      cellular automata, neural nets, genetic algorithms, chaos theory, etc.
  284.      Just because software uses a different method of computation doesn't
  285.      make it more secure. (In fact, these techniques are the subject of
  286.      ongoing cryptographic research, and nobody has published successful
  287.      results based on their use yet.)
  288.  
  289.      Also be careful of specially modified versions of well-known
  290.      algorithms. This may intentionally or unintentionally weaken the
  291.      cipher.
  292.  
  293.      It's important to understand the difference between a new cipher and a
  294.      new product. Engaging in the practice of developing ciphers and
  295.      cryptographic products is a fine thing to do. However, to do both at
  296.      the same time is foolish. Many snake-oil vendors brag about how they do
  297.      this, despite the lack of wisdom in such activity.
  298.  
  299.    * Experienced Security Experts, Rave Reviews, and Other Useless
  300.      Certificates
  301.  
  302.      Beware of any product that claims it was analyzed by "experienced
  303.      security experts" without providing references. Always look for the
  304.      bibliography. Any cipher that they're using should appear in a number
  305.      of scholarly references. If not, it's obviously not been tested well
  306.      enough to prove or disprove its security.
  307.  
  308.      Don't rely on reviews in newspapers, magazines, or television shows,
  309.      since they generally don't have cryptographers to analyze software for
  310.      them. (Celebrity hackers who know telephone systems are not necessarily
  311.      crypto experts.)
  312.  
  313.      Just because a vendor is a well known company or the algorithm is
  314.      patented doesn't make it secure either.
  315.  
  316.    * Excessively Large Keys
  317.  
  318.      A common feature of snake oil is to have key lengths that are much
  319.      longer than practical. This is often due to confusion between symmetric
  320.      and asymmetric ciphers. For example, a vendor who claims to use a
  321.      strong symmetric cipher with a 2048-bit key probably lacks some basic
  322.      understanding of key length requirements and of the computational
  323.      expense of using such keys.
  324.  
  325.    * Unbreakability
  326.  
  327.      Some vendors will claim their software is "unbreakable". This is
  328.      marketing hype, and a common sign of snake-oil. No algorithm is
  329.      unbreakable. Even the best algorithms are susceptible to brute-force
  330.      attacks, though this can be impractical if the key is large enough.
  331.  
  332.      Some companies that claim unbreakability actually have serious reasons
  333.      for saying so. Unfortunately, these reasons generally depend on some
  334.      narrow definition of what it means to "break" security. For example,
  335.      one-time pads (see the next section) are technically unbreakable as far
  336.      as secrecy goes, but only if several difficult and important conditions
  337.      are true. Even then, they are trivially vulnerable to known plaintext
  338.      attacks on the message's integrity. Other systems may be unbreakable
  339.      only if one of the communicating devices (such as a laptop) isn't
  340.      stolen. So be sure to find out exactly what the "unbreakable"
  341.      properties of the system are, and see if the more breakable parts of
  342.      the system also provide adequate security.
  343.  
  344.      Often, less-experienced vendor representatives will roll their eyes and
  345.      say, "Of course it's not unbreakable if you do such-and-such." The
  346.      point is that the exact nature of "such and such" will vary from one
  347.      product to another. Pick the one that best matches your operational
  348.      needs.
  349.  
  350.    * One-Time-Pads
  351.  
  352.      A vendor might claim the system uses a one-time-pad (OTP), which is
  353.      provably unbreakable. Technically, the encrypted output of an OTP
  354.      system is equally likely to decrypt to any same-size plaintext. For
  355.      example, "598v *$ _+~xCtMB0" has an equal chance of decrypting to "the
  356.      answer is yes", "the answer is no!", or "you are a weenie!"
  357.  
  358.      Snake-oil vendors will try to capitalize on the known strength of an
  359.      OTP. But it is important to understand that any variation in the
  360.      implementation means that it is not an OTP and has nowhere near the
  361.      security of an OTP.
  362.  
  363.      An OTP system works by having a "pad" of random bits in the possession
  364.      of both the sender and recipient, but absolutely no one else.
  365.      Originally, paper pads were used before general-purpose computers came
  366.      into being. The pad must be sent from one party to the other securely,
  367.      such as in a locked briefcase handcuffed to the carrier.
  368.  
  369.      To encrypt an n-bit message, the next n bits in the pad are used as a
  370.      key. After the bits are used from the pad, they're destroyed, and can
  371.      never be used again.
  372.  
  373.      The bits in the pad cannot be generated by an algorithm or cipher. They
  374.      must be truly random, using a real random source such as specialized
  375.      hardware, radioactive decay timings, etc. Anything else is not an OTP.
  376.  
  377.      OTPs are seriously vulnerable if you ever reuse a pad. For instance,
  378.      the NSA's VENONA project [4], without the benefit of computer
  379.      assistance, managed to decrypt a series of KGB messages encrypted with
  380.      faulty pads. It doesn't take much work to crack a reused pad.
  381.  
  382.      The real limitation to practical use of OTPs is the generation and
  383.      distribution of truly random keys. You have to distribute at least one
  384.      bit of key for every bit of data transmitted. So OTPs are awkward for
  385.      general purpose cryptography. They're only practical for
  386.      extremely-low-bandwidth communication channels where two parties can
  387.      exchange pads with a method different than they exchange messages. (It
  388.      is rumored that a link from Washington, D.C., to Moscow was encrypted
  389.      with an OTP.)
  390.  
  391.      Further, if pads are provided by a vendor, you cannot verify the
  392.      quality of the pads. How do you know the vendor isn't sending the same
  393.      bits to everyone? Keeping a copy for themselves? Or selling a copy to
  394.      your rivals?
  395.  
  396.      Also, some vendors may try to confuse random session keys or
  397.      initialization vectors with OTPs.
  398.  
  399.    * Algorithm or product X is insecure
  400.  
  401.      Be wary of anything that claims that competing algorithms or products
  402.      are insecure without providing evidence for these claims. Sometimes
  403.      attacks are theoretical or impractical, requiring special circumstances
  404.      or massive computing power over many years, and it's easy to confuse a
  405.      layman by mentioning these.
  406.  
  407.    * Recoverable Keys
  408.  
  409.      If there is a key-backup or key-escrow system, are you in control of
  410.      the backup or does someone else hold a copy of the key? Can a third
  411.      party recover your key without much trouble? Remember, you have no
  412.      security against someone who has your key.
  413.  
  414.      If the vendor claims it can recover lost keys without using some type
  415.      of key-escrow service, avoid it. The security is obviously flawed.
  416.  
  417.    * Exportable from the USA
  418.  
  419.      If the software is made in the USA, can it be exported? Strong
  420.      cryptography is considered dangerous munitions by the United States and
  421.      requires approval from the US State Department before it can leave the
  422.      country. Chances are, if the software has been approved for export, the
  423.      algorithm is weak or crackable.
  424.  
  425.      If the vendor is unaware of export restrictions, avoid their software.
  426.      For example, if they claim that the IDEA cipher can be exported when
  427.      most vendors (and the State Department!) do not make such a claim, then
  428.      the vendor is probably lacking sufficient clue to provide you with good
  429.      cryptography.
  430.  
  431.      Because of export restrictions, some decent crypto products come in two
  432.      flavors: US-only and exportable. The exportable version will be
  433.      crippled, probably by using smaller keys, making it easy to crack.
  434.  
  435.      There are no restrictions on importing crypto products into the US, so
  436.      a non-US vendor can legally offer a single, secure version of a product
  437.      for the entire world.
  438.  
  439.      Note that a cryptosystem may not be exportable from the US even if it
  440.      is available outside the US: sometimes a utility is illegally exported
  441.      and posted on an overseas site.
  442.  
  443.    * "Military Grade"
  444.  
  445.      Many crypto vendors claim their system is "military grade". This is a
  446.      meaningless term, since there isn't a standard that defines "military
  447.      grade", other than actually being used by various armed forces. Since
  448.      these organizations don't reveal what crypto they use, it isn't
  449.      possible to prove or disprove that something is "military grade".
  450.  
  451.      Unfortunately, some good crypto products also use this term. Watch for
  452.      this in combination with other snake-oil indicators, e.g., "our
  453.      military-grade encryption system is exportable from the US!"
  454.  
  455. Other Considerations
  456.  
  457. Avoid vendors who don't seem to understand anything described in the "Basic
  458. Concepts" section above.
  459.  
  460. Avoid anything that doesn't let you generate your own keys (e.g., the vendor
  461. sends you keys in the mail, or keys are embedded in the copy of the software
  462. you buy).
  463.  
  464. Avoid anything that allows someone with your copy of the software to access
  465. files, data, etc. without needing some sort of key or passphrase.
  466.  
  467. Beware of products that are designed for a specific task, such as data
  468. archiving, and have encryption as an additional feature. Typically, it's
  469. better to use an encryption utility for encryption, rather than some tool
  470. designed for another purpose that adds encryption as an afterthought.
  471.  
  472. No product is secure if used improperly. You can be the weakest link in the
  473. chain if you use a product carelessly. Do not trust any product to be
  474. foolproof, and be wary of any product that claims it is.
  475.  
  476. Interface isn't everything: user-friendliness is important, but be wary of
  477. anything that puts too much emphasis on ease of use without due
  478. consideration to cryptographic strength.
  479.  
  480. Glossary
  481.  algorithm       A procedure or mathematical formula. Cryptographic
  482.                  algorithms convert plaintext to and from ciphertext.
  483.  
  484.  cipher          Synonym for "cryptographic algorithm"
  485.  
  486.  cryptanalysis   To solve or "break" a cryptosystem.
  487.  
  488.  escrow          A third party able to decrypt messages sent from one
  489.                  person to another. Although this term is often used in
  490.                  connection with the US Government's "Clipper" proposals,
  491.                  it isn't limited to government-mandated ability to access
  492.                  encrypted information at will. Some corporations might
  493.                  wish to have their employees use cryptosystems with escrow
  494.                  features when conducting the company's business, so the
  495.                  information can be retrieved should the employee be unable
  496.                  to unlock it himself later, (if he were to forget his
  497.                  passphrase, suddenly quit, get run over by a bus, etc.)
  498.                  Or, someone might wish his spouse or lawyer to be able to
  499.                  recover encrypted data, etc., in which case he could use a
  500.                  cryptosystem with an escrow feature.
  501.  
  502.  initialization  One of the problems with encrypting such things as files
  503.  vector          in specific formats (i.e., that of a word processor,
  504.                  email, etc.) is that there is a high degree of
  505.                  predictability about the first bytes of the message. This
  506.                  could be used to break the encrypted message easier than
  507.                  by brute force. In ciphers where one block of data is used
  508.                  to influence the ciphertext of the next (such as CBC), a
  509.                  random block of data is encrypted and used as the first
  510.                  block of the encrypted message, resulting in a less
  511.                  predictable ciphertext message. This random block is known
  512.                  as the initialization vector. The decryption process also
  513.                  performs the function of removing the first block,
  514.                  resulting in the original plaintext.
  515.  
  516.  ITAR            International Traffic in Arms Regulations. These are the
  517.                  rules by which munitions (including cryptography), as
  518.                  defined by the US State Department, may (or may not) be
  519.                  exported from the US.
  520.  
  521.  key             A piece of data that, when fed to an algorithm along with
  522.                  ciphertext, will yield plaintext. (Or, when fed to an
  523.                  algorithm along with plaintext, will yield ciphertext.
  524.  
  525.  random session  This is a temporary key that is generated specifically for
  526.  key             one message. Typically, in public key cryptosystems, the
  527.                  message to be sent is encrypted with a symmetric key that
  528.                  was specifically generated for that message. The encrypted
  529.                  version of that message, as well as the associated session
  530.                  key can then be encrypted with the recipient's public key.
  531.                  When the recipient decrypts the message, then, the system
  532.                  will actually decrypt the message it gets (which is the
  533.                  ciphertext message and the symmetric key to decrypt it),
  534.                  and then use the symmetric key to decrypt the ciphertext.
  535.                  The result is the plaintext message. This is often done
  536.                  because of the tremendous difference in the speed of
  537.                  symmetric vs. asymmetric ciphers.
  538.  
  539. Document History
  540.  
  541. With the rise in the number of crypto products came a rise in the number of
  542. ineffective or outright bogus products. After some discussion about this on
  543. the cypherpunks list, Robert Rothenburg <wlkngowl@unix.asb.com> wrote the
  544. first iteration of the Snake Oil FAQ. Matt Curtin took the early text and
  545. munged it into its current state with the help of the listed contributors
  546. (and probably some others whose names have inadvertently missed. Sorry in
  547. advance, if this is the case.)
  548.  
  549. Contributors
  550.  
  551. The following folks have contributed to this FAQ.
  552.  
  553. Jeremey Barrett <jeremey@forequest.com>
  554. Matt Blaze <mab@research.att.com>
  555. Gary Ellison <gary.f.ellison@att.com>
  556. <fifersl@ibm.net>
  557. <geeman@best.com>
  558. Larry Kilgallen <KILGALLEN@Eisner.DECUS.Org>
  559. Dutra Lacerda <dutra.lacerda@mail.telepac.pt>
  560. Felix Lee <flee@teleport.com>
  561. Colin Plumb <colin@nyx.net>
  562. Jim Ray <liberty@gate.net>
  563. Terry Ritter <ritter@io.com>
  564. Robert Rothenburg <wlkngowl@unix.asb.com>
  565. Adam Shostack <adam@homeport.org>
  566. Rick Smith <smith@sctc.com>
  567. Randall Williams <ac387@yfn.ysu.edu>
  568.  
  569. References
  570.  
  571.   1. B. Schneier. Applied Cryptography, 2e. John Wiley & Sons. 1996.
  572.   2. M. Blaze, W. Diffie, R. L. Rivest, B. Schneier, T. Shimomura, E.
  573.      Thompson, M. Wiener. "Minimal Key Lengths for Symmetric Ciphers to
  574.      Provide Adequate Commercial Security". available at
  575.      ftp://ftp.research.att.com/dist/mab/keylength.ps.
  576.   3. The Crypt Cabal. Cryptography FAQ. available at
  577.      http://www.cis.ohio-state.edu/hypertext/faq/usenet/cryptography-faq/top.html.
  578.   4. The National Security Agency. The VENONA Project. available at
  579.      http://www.nsa.gov/docs/enona/venona.html.
  580.  
  581.  
  582. -- 
  583. Matt Curtin  cmcurtin@research.megasoft.com  Megasoft, Inc   Chief Scientist
  584. http://www.research.megasoft.com/people/cmcurtin/   I speak only for myself.
  585. Hacker Security Firewall Crypto PGP Privacy Unix Perl Java Internet Intranet
  586.